package hotel.compare.oversea.service;

import hotel.base.oversea.service.BaseService;
import hotel.base.oversea.utils.Result;
import hotel.compare.oversea.entity.master.CompareHotel;
import hotel.compare.oversea.vo.CompareHotelVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 校验后酒店
 *
 * @author Zhang·JZ
 * @date 2020-05-28
 */
public interface CompareHotelService extends BaseService<CompareHotel> {

    /**
     * 校验酒店信息
     *
     * @return
     */
    Result<Boolean> compareHotel();

    /**
     * 获取校验后的酒店信息
     *
     * @return
     */
    List<CompareHotel> getCompareHotel();

    /**
     * 根据携程master_hotel_id 获取校验后酒店信息
     *
     * @param masterHotelId
     * @return
     */
    Result getCompareHotelByMasterHotelId(String masterHotelId);

    Result<Object> queryOneNotCreateMasterHotelId(Integer index, Integer pageSize);

    Result<Object> updateCompareMasterIsCreateSub(String masterHotelId, Integer isCreateSub, String isCreateSubReamrk);

    /**
     * 根据携程master_hotel_id获取对应的美团酒店id
     *
     * @param masterHotelId
     * @return
     */
    String getCompareMtHotelId(int masterHotelId);

    /**
     * <H1>获取核验后酒店信息列表</H1>
     *
     * @param compareHotelVO
     * @return hotel.base.oversea.utils.Result
     * @author HuangT
     * @date 2020/7/24 16:38
     */
    Result getCompareHotelList(CompareHotelVO compareHotelVO);

    /**
     * <H1>校验通过或不通过</H1>
     *
     * @param compareHotel
     * @return hotel.base.oversea.utils.Result
     * @author HuangT
     * @date 2020/7/30 17:02
     */
    Result changeIsCompare(CompareHotelVO compareHotel);

    /**
     * <H1>获取对比酒店详情</H1>
     *
     * @param id
     * @return hotel.base.oversea.utils.Result
     * @author HuangT
     * @date 2020/8/10 15:57
     */
    Result getHotelInfoById(String id);

    /**
     * <H1>新增对比酒店</H1>
     *
     * @param compareHotel
     * @return hotel.base.oversea.utils.Result
     * @author HuangT
     * @date 2020/8/10 15:56
     */
    Result addCompare(CompareHotelVO compareHotel);

    /**
     * <H1>新增前验证是否存在已验证通过的酒店</H1>
     *
     * @param compareHotel
     * @return hotel.base.oversea.utils.Result
     * @author HuangT
     * @date 2020/8/10 18:22
     */
    Result checkExist(CompareHotelVO compareHotel);


    void compareHotelByPhone();

    Result<Object> findNotCreateMtHotelId();

    /**
     * <H1>获取美团ID</H1>
     *
     * @param compareHotelForFpVO 实体对象
     * @return hotel.base.oversea.utils.Result<java.util.List < java.lang.String>>
     * @author HuangT
     * @Date 2020/9/21 20:48
     */
//    Result<List<CompareRoomForFpVO>> getMtHotelIds(CompareHotelForFpVO compareHotelForFpVO);

    /**
     * 导入待创建的酒店id
     * @param excelFile
     * @return
     */
    Result<Object> submitUploadUp(MultipartFile excelFile);
    /***
    * @Author: lmf
    * @Date: 2020/12/11
     * 根据美团酒店id获取携程母酒店id
    */
    Integer getCompareHotelId(int mtHotelId);
}
